package com.hgx.algorithm.base.problem;

import com.hgx.algorithm.base.utils.ArraySortUtil;

/**
 * 题目1：
 * 给定一个数组arr和一个数num，请把小于等于number的数放在数组的左边，大于number的数放在数组的右边。
 * 要求额外空间复杂度O(1),时间复杂度O(N)
 */
public class ProblemOne {

    public static void main(String[] args) {
        System.out.println("给定一个数组arr和一个数num，请把小于等于number的数放在数组的左边，大于number的数放在数组的右边。");
        int[] arr = ArraySortUtil.generateRandomArray(20, 50);
        ArraySortUtil.print(arr);
        sort(arr,0);
        ArraySortUtil.print(arr);
    }

    public static void sort(int[] arr, int number) {
        int left = -1;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] <= number){
                ArraySortUtil.swap(arr,++left,i);
            }

        }
    }



}
